package com.kehutong.wxapi.response;

import org.coraframework.json.annotation.JSONField;

import java.util.List;

/**
 * 获取部门成员详情响应对象
 * @author: liukunlong
 * @date: 2021-03-08 16:38
 */
public class UserListResponse {

    /**
     * errcode
     */ /**
     * errcode : 0
     * errmsg : ok
     * userlist : [{"userid":"zhangsan","name":"李四","department":[1,2],"order":[1,2],"position":"后台工程师","mobile":"13800000000","gender":"1","email":"zhangsan@gzdev.com","is_leader_in_dept":[1,0],"avatar":"http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/0","thumb_avatar":"http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/100","telephone":"020-123456","alias":"jackzhang","status":1,"address":"广州市海珠区新港中路","hide_mobile":0,"english_name":"jacky","open_userid":"xxxxxx","main_department":1,"extattr":{"attrs":[{"type":0,"name":"文本名称","text":{"value":"文本"}},{"type":1,"name":"网页名称","web":{"url":"http://www.test.com","title":"标题"}}]},"qr_code":"https://open.work.weixin.qq.com/wwopen/userQRCode?vcode=xxx","external_position":"产品经理","external_profile":{"external_corp_name":"企业简称","external_attr":[{"type":0,"name":"文本名称","text":{"value":"文本"}},{"type":1,"name":"网页名称","web":{"url":"http://www.test.com","title":"标题"}},{"type":2,"name":"测试app","miniprogram":{"appid":"wx8bd80126147dFAKE","pagepath":"/index","title":"miniprogram"}}]}}]
     */

    @JSONField(name = "errcode")
    private Integer errcode;
    /**
     * errmsg
     */
    @JSONField(name = "errmsg")
    private String errmsg;
    /**
     * userlist
     */
    @JSONField(name = "userlist")
    private List<UserlistDTO> userlist;

    public Integer getErrcode() {
        return errcode;
    }

    public void setErrcode(Integer errcode) {
        this.errcode = errcode;
    }

    public String getErrmsg() {
        return errmsg;
    }

    public void setErrmsg(String errmsg) {
        this.errmsg = errmsg;
    }

    public List<UserlistDTO> getUserlist() {
        return userlist;
    }

    public void setUserlist(List<UserlistDTO> userlist) {
        this.userlist = userlist;
    }

    public static class UserlistDTO {
        /**
         * userid
         */ /**
         * userid : zhangsan
         * name : 李四
         * department : [1,2]
         * order : [1,2]
         * position : 后台工程师
         * mobile : 13800000000
         * gender : 1
         * email : zhangsan@gzdev.com
         * is_leader_in_dept : [1,0]
         * avatar : http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/0
         * thumb_avatar : http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/100
         * telephone : 020-123456
         * alias : jackzhang
         * status : 1
         * address : 广州市海珠区新港中路
         * hide_mobile : 0
         * english_name : jacky
         * open_userid : xxxxxx
         * main_department : 1
         * extattr : {"attrs":[{"type":0,"name":"文本名称","text":{"value":"文本"}},{"type":1,"name":"网页名称","web":{"url":"http://www.test.com","title":"标题"}}]}
         * qr_code : https://open.work.weixin.qq.com/wwopen/userQRCode?vcode=xxx
         * external_position : 产品经理
         * external_profile : {"external_corp_name":"企业简称","external_attr":[{"type":0,"name":"文本名称","text":{"value":"文本"}},{"type":1,"name":"网页名称","web":{"url":"http://www.test.com","title":"标题"}},{"type":2,"name":"测试app","miniprogram":{"appid":"wx8bd80126147dFAKE","pagepath":"/index","title":"miniprogram"}}]}
         */

        @JSONField(name = "userid")
        private String userid;
        /**
         * name
         */
        @JSONField(name = "name")
        private String name;
        /**
         * department
         */
        @JSONField(name = "department")
        private List<Integer> department;
        /**
         * order
         */
        @JSONField(name = "order")
        private List<Integer> order;
        /**
         * position
         */
        @JSONField(name = "position")
        private String position;
        /**
         * mobile
         */
        @JSONField(name = "mobile")
        private String mobile;
        /**
         * gender
         */
        @JSONField(name = "gender")
        private String gender;
        /**
         * email
         */
        @JSONField(name = "email")
        private String email;
        /**
         * isLeaderInDept
         */
        @JSONField(name = "is_leader_in_dept")
        private List<Integer> isLeaderInDept;
        /**
         * avatar
         */
        @JSONField(name = "avatar")
        private String avatar;
        /**
         * thumbAvatar
         */
        @JSONField(name = "thumb_avatar")
        private String thumbAvatar;
        /**
         * telephone
         */
        @JSONField(name = "telephone")
        private String telephone;
        /**
         * alias
         */
        @JSONField(name = "alias")
        private String alias;
        /**
         * status
         */
        @JSONField(name = "status")
        private Integer status;
        /**
         * address
         */
        @JSONField(name = "address")
        private String address;
        /**
         * hideMobile
         */
        @JSONField(name = "hide_mobile")
        private Integer hideMobile;
        /**
         * englishName
         */
        @JSONField(name = "english_name")
        private String englishName;
        /**
         * openUserid
         */
        @JSONField(name = "open_userid")
        private String openUserid;
        /**
         * mainDepartment
         */
        @JSONField(name = "main_department")
        private Integer mainDepartment;
        /**
         * extattr
         */
        @JSONField(name = "extattr")
        private ExtattrDTO extattr;
        /**
         * qrCode
         */
        @JSONField(name = "qr_code")
        private String qrCode;
        /**
         * externalPosition
         */
        @JSONField(name = "external_position")
        private String externalPosition;
        /**
         * externalProfile
         */
        @JSONField(name = "external_profile")
        private ExternalProfileDTO externalProfile;

        public String getUserid() {
            return userid;
        }

        public void setUserid(String userid) {
            this.userid = userid;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public List<Integer> getDepartment() {
            return department;
        }

        public void setDepartment(List<Integer> department) {
            this.department = department;
        }

        public List<Integer> getOrder() {
            return order;
        }

        public void setOrder(List<Integer> order) {
            this.order = order;
        }

        public String getPosition() {
            return position;
        }

        public void setPosition(String position) {
            this.position = position;
        }

        public String getMobile() {
            return mobile;
        }

        public void setMobile(String mobile) {
            this.mobile = mobile;
        }

        public String getGender() {
            return gender;
        }

        public void setGender(String gender) {
            this.gender = gender;
        }

        public String getEmail() {
            return email;
        }

        public void setEmail(String email) {
            this.email = email;
        }

        public List<Integer> getIsLeaderInDept() {
            return isLeaderInDept;
        }

        public void setIsLeaderInDept(List<Integer> isLeaderInDept) {
            this.isLeaderInDept = isLeaderInDept;
        }

        public String getAvatar() {
            return avatar;
        }

        public void setAvatar(String avatar) {
            this.avatar = avatar;
        }

        public String getThumbAvatar() {
            return thumbAvatar;
        }

        public void setThumbAvatar(String thumbAvatar) {
            this.thumbAvatar = thumbAvatar;
        }

        public String getTelephone() {
            return telephone;
        }

        public void setTelephone(String telephone) {
            this.telephone = telephone;
        }

        public String getAlias() {
            return alias;
        }

        public void setAlias(String alias) {
            this.alias = alias;
        }

        public Integer getStatus() {
            return status;
        }

        public void setStatus(Integer status) {
            this.status = status;
        }

        public String getAddress() {
            return address;
        }

        public void setAddress(String address) {
            this.address = address;
        }

        public Integer getHideMobile() {
            return hideMobile;
        }

        public void setHideMobile(Integer hideMobile) {
            this.hideMobile = hideMobile;
        }

        public String getEnglishName() {
            return englishName;
        }

        public void setEnglishName(String englishName) {
            this.englishName = englishName;
        }

        public String getOpenUserid() {
            return openUserid;
        }

        public void setOpenUserid(String openUserid) {
            this.openUserid = openUserid;
        }

        public Integer getMainDepartment() {
            return mainDepartment;
        }

        public void setMainDepartment(Integer mainDepartment) {
            this.mainDepartment = mainDepartment;
        }

        public ExtattrDTO getExtattr() {
            return extattr;
        }

        public void setExtattr(ExtattrDTO extattr) {
            this.extattr = extattr;
        }

        public String getQrCode() {
            return qrCode;
        }

        public void setQrCode(String qrCode) {
            this.qrCode = qrCode;
        }

        public String getExternalPosition() {
            return externalPosition;
        }

        public void setExternalPosition(String externalPosition) {
            this.externalPosition = externalPosition;
        }

        public ExternalProfileDTO getExternalProfile() {
            return externalProfile;
        }

        public void setExternalProfile(ExternalProfileDTO externalProfile) {
            this.externalProfile = externalProfile;
        }

        public static class ExtattrDTO {
            /**
             * attrs
             */
            @JSONField(name = "attrs")
            private List<AttrsDTO> attrs;

            public List<AttrsDTO> getAttrs() {
                return attrs;
            }

            public void setAttrs(List<AttrsDTO> attrs) {
                this.attrs = attrs;
            }

            public static class AttrsDTO {
                /**
                 * type
                 */ /**
                 * type : 0
                 * name : 文本名称
                 * text : {"value":"文本"}
                 * web : {"url":"http://www.test.com","title":"标题"}
                 */

                @JSONField(name = "type")
                private Integer type;
                /**
                 * name
                 */
                @JSONField(name = "name")
                private String name;
                /**
                 * text
                 */
                @JSONField(name = "text")
                private TextDTO text;
                /**
                 * web
                 */
                @JSONField(name = "web")
                private WebDTO web;

                public Integer getType() {
                    return type;
                }

                public void setType(Integer type) {
                    this.type = type;
                }

                public String getName() {
                    return name;
                }

                public void setName(String name) {
                    this.name = name;
                }

                public TextDTO getText() {
                    return text;
                }

                public void setText(TextDTO text) {
                    this.text = text;
                }

                public WebDTO getWeb() {
                    return web;
                }

                public void setWeb(WebDTO web) {
                    this.web = web;
                }

                public static class TextDTO {
                    /**
                     * value
                     */ /**
                     * value : 文本
                     */

                    @JSONField(name = "value")
                    private String value;

                    public String getValue() {
                        return value;
                    }

                    public void setValue(String value) {
                        this.value = value;
                    }
                }

                public static class WebDTO {
                    /**
                     * url
                     */ /**
                     * url : http://www.test.com
                     * title : 标题
                     */

                    @JSONField(name = "url")
                    private String url;
                    /**
                     * title
                     */
                    @JSONField(name = "title")
                    private String title;

                    public String getUrl() {
                        return url;
                    }

                    public void setUrl(String url) {
                        this.url = url;
                    }

                    public String getTitle() {
                        return title;
                    }

                    public void setTitle(String title) {
                        this.title = title;
                    }
                }
            }
        }

        public static class ExternalProfileDTO {
            /**
             * externalCorpName
             */ /**
             * external_corp_name : 企业简称
             * external_attr : [{"type":0,"name":"文本名称","text":{"value":"文本"}},{"type":1,"name":"网页名称","web":{"url":"http://www.test.com","title":"标题"}},{"type":2,"name":"测试app","miniprogram":{"appid":"wx8bd80126147dFAKE","pagepath":"/index","title":"miniprogram"}}]
             */

            @JSONField(name = "external_corp_name")
            private String externalCorpName;
            /**
             * externalAttr
             */
            @JSONField(name = "external_attr")
            private List<ExternalAttrDTO> externalAttr;

            public String getExternalCorpName() {
                return externalCorpName;
            }

            public void setExternalCorpName(String externalCorpName) {
                this.externalCorpName = externalCorpName;
            }

            public List<ExternalAttrDTO> getExternalAttr() {
                return externalAttr;
            }

            public void setExternalAttr(List<ExternalAttrDTO> externalAttr) {
                this.externalAttr = externalAttr;
            }

            public static class ExternalAttrDTO {
                /**
                 * type
                 */ /**
                 * type : 0
                 * name : 文本名称
                 * text : {"value":"文本"}
                 * web : {"url":"http://www.test.com","title":"标题"}
                 * miniprogram : {"appid":"wx8bd80126147dFAKE","pagepath":"/index","title":"miniprogram"}
                 */

                @JSONField(name = "type")
                private Integer type;
                /**
                 * name
                 */
                @JSONField(name = "name")
                private String name;
                /**
                 * text
                 */
                @JSONField(name = "text")
                private TextDTO text;
                /**
                 * web
                 */
                @JSONField(name = "web")
                private WebDTO web;
                /**
                 * miniprogram
                 */
                @JSONField(name = "miniprogram")
                private MiniprogramDTO miniprogram;

                public Integer getType() {
                    return type;
                }

                public void setType(Integer type) {
                    this.type = type;
                }

                public String getName() {
                    return name;
                }

                public void setName(String name) {
                    this.name = name;
                }

                public TextDTO getText() {
                    return text;
                }

                public void setText(TextDTO text) {
                    this.text = text;
                }

                public WebDTO getWeb() {
                    return web;
                }

                public void setWeb(WebDTO web) {
                    this.web = web;
                }

                public MiniprogramDTO getMiniprogram() {
                    return miniprogram;
                }

                public void setMiniprogram(MiniprogramDTO miniprogram) {
                    this.miniprogram = miniprogram;
                }

                public static class TextDTO {
                    /**
                     * value
                     */ /**
                     * value : 文本
                     */

                    @JSONField(name = "value")
                    private String value;

                    public String getValue() {
                        return value;
                    }

                    public void setValue(String value) {
                        this.value = value;
                    }
                }

                public static class WebDTO {
                    /**
                     * url
                     */ /**
                     * url : http://www.test.com
                     * title : 标题
                     */

                    @JSONField(name = "url")
                    private String url;
                    /**
                     * title
                     */
                    @JSONField(name = "title")
                    private String title;

                    public String getUrl() {
                        return url;
                    }

                    public void setUrl(String url) {
                        this.url = url;
                    }

                    public String getTitle() {
                        return title;
                    }

                    public void setTitle(String title) {
                        this.title = title;
                    }
                }

                public static class MiniprogramDTO {
                    /**
                     * appid
                     */ /**
                     * appid : wx8bd80126147dFAKE
                     * pagepath : /index
                     * title : miniprogram
                     */

                    @JSONField(name = "appid")
                    private String appid;
                    /**
                     * pagepath
                     */
                    @JSONField(name = "pagepath")
                    private String pagepath;
                    /**
                     * title
                     */
                    @JSONField(name = "title")
                    private String title;

                    public String getAppid() {
                        return appid;
                    }

                    public void setAppid(String appid) {
                        this.appid = appid;
                    }

                    public String getPagepath() {
                        return pagepath;
                    }

                    public void setPagepath(String pagepath) {
                        this.pagepath = pagepath;
                    }

                    public String getTitle() {
                        return title;
                    }

                    public void setTitle(String title) {
                        this.title = title;
                    }
                }
            }
        }
    }
}
